package com.jianguozh.difs.support.service.sys.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jianguozh.difs.support.service.sys.entity.Client;
import com.jianguozh.difs.support.service.sys.entity.Res;
import com.jianguozh.difs.support.service.sys.entity.Role;
import com.jianguozh.difs.support.service.sys.vo.RoleGrantedClientVo;
import com.jianguozh.difs.support.service.sys.vo.RoleGrantedResVo;

import java.util.List;

/**
 * <p>
 * 角色 服务类
 * </p>
 *
 * @author hanrs
 * @since 2022-03-17
 */
public interface IRoleService extends IService<Role> {

    /**
     * 获取角色被授予的应用
     *
     * @param roleId
     * @return
     */
    List<Client> listGrantedClient(String roleId);

    /**
     * 获取角色被授予的应用的资源
     *
     * @param roleId
     * @param clientId
     * @return
     */
    List<Res> listGrantedRes(String roleId, String clientId);

    /**
     * 获取应用可分配的角色
     *
     * @param clientId
     * @return
     */
    List<Role> listByClientId(String clientId);

    /**
     * 保存角色授予的应用和资源
     *
     * @param roleId
     * @param clientId
     * @param granted
     * @param resIds
     */
    void saveGrantedClientAndRes(String roleId, String clientId, Boolean granted, List<String> resIds);

}
